<?xml version="1.0" encoding="UTF-8"?>
<html>
    <head>
        <link type="text/css" rel="stylesheet" href="./css/template.css" />
        <link type="text/css" rel="stylesheet" href="./css/SyntaxHighlighter.css" />
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <meta name="”title”" content="”un,mot,clé,java,duke,sun”" />
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Matisse - Articles - 1/3 - Java &amp; Solaris par le Laboratoire SUPINFO des technologies Sun </title>
        <meta name="Author" content="Laboratoire Sun - SUPINFO Paris" />
        <meta name="owner" content="labo-sun@supinfo.com" />
        <meta name="Identifier-URL" content="http://www.labo-sun.com/" />
        <meta name="Reply-to" content="labo-sun@supinfo.com" />
        <meta name="revisit-after" content="10 days" />
        <meta name="Robots" content="index, follow" />
        <meta name="Description" content="Nous allons découvrir le fonctionnement de cette base de données objet." />
        <meta name="Publisher" content="Laboratoire Sun - SUPINFO Paris" />
        <meta name="Copyright" content="© 2000-2006 Laboratoire Sun - SUPINFO Paris" />
        <script language="javascript" src="./js/shInit.js" />
        <script language="javascript" src="./js/shCore.js" />
        <script language="javascript" src="./js/shBrushCpp.js" />
        <script language="javascript" src="./js/shBrushCSharp.js" />
        <script language="javascript" src="./js/shBrushCss.js" />
        <script language="javascript" src="./js/shBrushDelphi.js" />
        <script language="javascript" src="./js/shBrushJava.js" />
        <script language="javascript" src="./js/shBrushJScript.js" />
        <script language="javascript" src="./js/shBrushPhp.js" />
        <script language="javascript" src="./js/shBrushPython.js" />
        <script language="javascript" src="./js/shBrushRuby.js" />
        <script language="javascript" src="./js/shBrushSql.js" />
        <script language="javascript" src="./js/shBrushVb.js" />
        <script language="javascript" src="./js/shBrushXml.js" />
        <keywords>Java,GUI,matisse,articles,1,3,certification,sun,java,solaris,articles,essentiels,tips,astuces,codes,exemple,tutorial,developpement,jsp,servlet,jdbc,jdo,j2se,j2ee,laboratoire</keywords>
    </head>
    <body>
        <div class="chapter">
            <h2>1.Introduction</h2>
            <div class="subChapter">
                <h3>1.1.SGBDO</h3>
                <h4>1.1.1.Introduction</h4>
                <p>Avant de pouvoir aborder le sujet Matisse il est nécessaire de nous rappeler de plusieurs concepts dont il découle.</p>
                <p>Qu’est qu’une base de données ?</p>
                <p>Il s’agit d’un ensemble d’informations organisé de façon cohérent, hiérarchisé, et structuré. Ce procédé permet donc de conserver un grand nombre de données de façon optimum afin de les exploiter par la suite. De nos jours bon nombre de logiciels permettent de créer, modifier, sauvegarder, ou supprimer une base de données. Voici quelques exemples de logiciels de création de bases de données :</p>
                <ul>
                    <li>
                        mdb
                        <br />
                    </li>
                    <li>
                        MySQL
                        <br />
                    </li>
                    <li>
                        Oracle
                        <br />
                    </li>
                </ul>
                <p>Représentation d’une base de données :</p>
                <img src="./images/matisse_html_2f0d9390.gif" />
                <p>Un objet s’inscrit en général dans un programme ou une base de données orientée objet. Il s’agit d’une entité (au sens large du terme) ayant un comportement propre qui s’inscrit dans le traitement logique des données dans le but de réaliser un but plus grand. Un objet contient donc des caractéristiques et des comportements (fonctions, variables) qui lui sont propre. Autrement dit un objet est la représentation d’une chose réelle dans le monde informatique, il possède donc en son sein les variables qui sont le reflet de ses caractéristiques propre. Un objet peut hériter de certaines caractéristiques d’un autre, c'est-à-dire qu’il obtiendra certaineS caractéristiques de l’objet dont il hérite.</p>
                <p>Exemple : l’objet Homme est constitué de variables comme Nom, Prénom, etc.…</p>
                <br />
                <p>Méthode</p>
                <p>C’est une fonction définissant le ou les comportements d’un ou plusieurs objets</p>
                <br />
                <br />
                <p>ODL (Object Description Language)</p>
                <p>Langage utilisé pour générer des classes persistantes</p>
                <br />
                <p>Object identifier</p>
                <p>Permet d’identifier les différents objets et ainsi de gérer les relations entre les objets</p>
                <br />
                <p>Relation</p>
                <p>Une relation existe entre deux ou plusieurs objets, il s’agit d’un lien entre ces derniers permettant de faire circuler certaines informations ou données</p>
                <br />
                <p>Schéma</p>
                <p>C’est une partie de la base de données qui décrit la structure de celle-ci</p>
                <br />
                <p>Qu’est qu’une base de données objet ?</p>
                <p>Il s’agit en fait d’une variante de la base de données. Dans celle-ci les données répertoriées sont des objets qui interagissent entre eux. Il existe plusieurs systèmes de gestion de bases de données qui permettent de réaliser une base de données objet, en voici quelque uns :</p>
                <br />
                <p>Les SGBDO (système de gestion de la base de données objet)</p>
                <br />
                <p>On peut considérer les SGBDO comme des logiciels permettant d’utiliser une base de données objet. En voici quelques exemples : Versant, O2, Matisse, etc.</p>
                <p />
            </div>
        </div>
        <div class="chapter">
            <h2>3.Conclusion</h2>
            <p>Avec une prise en main simple, une bonne ergonomie, des connaissances en programmation, et pour peu que l’on fasse quelques efforts, Matisse se révèle être un excellent outil de création et de gestion de base de données orienté objet</p>
            <br />
            <p>Fin du document</p>
        </div>
        <div class="chapter">
            <h2>2.Matisse</h2>
            <div class="subChapter">
                <h3>2.1.Composantes et utilisation de matisse</h3>
                <h4>2.1.1.Composition</h4>
                <p>Le SGBDO Matisse se compose de deux parties maîtresses :</p>
                <br />
                <p>Matisse Enterprise Manager, il s’agit de l’interface
					SQL Stored Methods permet de créer des requêtes et composants SQL que l’on pourra réutiliser par la suite dans le serveur</p>
                <br />
                <p>Matisse Enterprise Manager permet comme son nom l’indique de gérer les bases de données, l’import et l’export de base de données relationnelles, de documents XML, la sécurité ou encore les fonctions d’administration. Matisse Enterprise Manager contient un outil d’analyse SQL permettant d’optimiser les requêtes. Il est certain qu’une interface graphique facilite la gestion d’une base de données, il est toutefois possible avec matisse de ne pas s’en servir.</p>
                <h5>2.1.1.1.Quelques fonctionnalités</h5>
                <p>mt_sdl : Cette fonctionnalité permet d’importer ou exporter des schémas dans la base de données et de créer des classes pour les langages de programmation Java ainsi que C++</p>
                <ul>
                    <li>mt_xml : permet d’importer ou d’exporter des fichiers XML</li>
                    <li>mt_connection permet de gérer les différentes connexions de la base de données</li>
                    <li>mt_transactionnal : permet de gérer, activer, ou désactiver les différentes transactions pouvant être activé par la base de données</li>
                    <li>limit, offset : permet de choisir le nombre maximum d’objets retournés ainsi que le nombre d’objets présents avant l’opération.</li>
                    <li>Mt_emgr : Permet de créer, configurer, initialiser, commencer, surveiller, arrêter, soutenir, et reconstituer des bases de données, ainsi que de contrôler l'utilisation de disques de bases de données, des versions, et la sécurité. Les services administratifs peuvent également être effectués avec la ligne de commande mt_backup, mt_connection, mt_file, mt_partition, mt_replicate, mt_server, mt_transaction, mt_user et mt_version.</li>
                    <li>Mt-editor permet de modifier manuellement les objets de la base de données</li>
                    <li>Mt_monitor est un outil graphique</li>
                </ul>
                <p>Exemple</p>
                <textarea name="code" class="sql">Select champ1
					From table1
					Order by rangerpar
					Limit (nombre maximum d’objets retournés) 2
					Offset (nombre d’objets avant l’opération) 1 ;</textarea>
                <p>MtSQLParse permet de retourner le type de requête n’ayant pas été exécuté</p>
                <br />
                <p>L’application cliente de Matisse peut se connecter avec plusieurs types d’applications serveurs</p>
                <br />
                <p>Vous pouvez choisir laquelle des API Matisse vous utiliserez (C, C#, C++, Eiffel, Java, Perl, PHP, python, Small talk, Visual Basic, XML, ADO.NET, JDBC, ou encore ODBC)</p>
                <h5>2.1.1.2.Les Classes avec Matisse</h5>
                <p>Une classe peut être définie comme classe, comme super classe ou sous-classe la seconde héritant de toutes les propriétés de la première. Il est aussi possible de faire de l’héritage multiple avec matisse. Cela est toutefois à éviter si vous compter exporter vos classes dans du Java, C#, ou Smalltalk, ces langage ne faisant pas d’héritage multiple.</p>
                <h5>2.1.1.3.Les Méthodes avec Matisse</h5>
                <p>Vous pouvez avec Matisse définir vos méthodes comme étant soit :</p>
                <br />
                <p>Une méthode statique : elle n’est pas associée durant le temps d’exécution à une instance en particulier. Pour utiliser une méthode statique il faut écrire :
					Le mot clé «CALL » nom_de_la_classe  :: nom_de_la_méthode (paramètre) ;
					Une méthode abstraite est exécuté pour une instance donnée pour y accéder ou la mettre à jour avec le mot clés « SELF ». Elle peut être redéfinie dans une sous-classe en créant une méthode portant exactement le même nom.
					Les méthodes SQL sont exécutées du côté serveur. On peut l’invoquer à partir d’une autre méthode ou dans une clause WHERE</p>
                <br />
                <p>Les points d’entrée dictionnaire (Entry-Point Dictionaries)</p>
                <p>Il s’agit d’une structure d’indexation contenant des mots clés dérive. On peut les utiliser pour implémenter un texte indexer dans un attribut contenant un fichier texte. Les mots clés générés pour le point d’entrée dépend du « Make-entry » que l’on va utiliser. On utilise généralement ces deux fonctions :</p>
                <br />
                <p>« make-entry » qui classe tous le contenu de l’attribut dans une clé</p>
                <p>« full-text-make-entry » qui génère des clés pour chaque mot contenu dans le texte</p>
                <br />
                <p>Les Meta-Schémas</p>
                <br />
                <p>Il s’agit d’un schéma prédéfini contenant certains objets comme les classes ainsi que le schéma d’application</p>
                <br />
                <p>Pour le schéma des classes on utilise MtClass</p>
                <p>Pour celui des attributs MtAttribute</p>
                <p>Et pour les relations MtRelationship</p>
                <br />
                <p>Exemple :</p>
                <textarea name="code" class="sql">Select MtExemple FROM MtClass</textarea>
                <h5>2.1.1.4.Comment utiliser Matisse</h5>
                <br />
                <br />
                <p>
                    Tous d’abord télécharger le SGBD matisse sur
                    <a href="http://www.matisse.com" target="_blank">www.matisse.com</a>
                    , (choisir la version matisse correspondant à votre système d’exploitation)
                </p>
                <br />
                <p>Une fois Matisse installé et lancé, voici la première fenêtre qui apparaîtra. On peut voir différentes informations concernant votre machine.</p>
                <img src="./images/matisse_html_65135625.png" />
                <p>C’est à partir de cette fenêtre que l’on peut créer une base de données. Cliquer sur
					« File » puis « New DataBase »</p>
                <img src="./images/matisse_html_2770cafd.png" />
                <p>Choisir le nom de la base de données dans l’onglet général</p>
                <img src="./images/matisse_html_m1f784297.png" />
                <p>Dans l’onglet « Data files » on peut connaitre l’emplacement de la base de données</p>
                <img src="./images/matisse_html_35e724a6.png" />
                <p>En cliquant sur l’onglet « Advanced » vous pourrez paramétrer des options supplémentaires</p>
                <img src="./images/matisse_html_m3438bcc8.png" />
                <p>Activer ou non le contrôle d’accès de la base de données que vous vous apprêtez à créer</p>
                <img src="./images/matisse_html_145e90a4.png" />
                <p>Spécifier la taille du cache de la page ainsi que la version collection</p>
                <img src="./images/matisse_html_6fb617bf.png" />
                <p>Sélectionner ports du moniteur et ceux du serveur</p>
                <img src="./images/matisse_html_3c6850bc.png" />
                <p>Une fois que vous avez cliqué sur OK, puis dans le menu à gauche sur votre base de données cliquer droit puis sur « Start » pour la lancer</p>
                <img src="./images/matisse_html_427a33f7.png" />
                <p>Une fois la base de données activée, cette nouvelle fenêtre apparaîtra</p>
                <img src="./images/matisse_html_25b976c0.png" />
                <p>Créer une nouvelle classe :</p>
                <br />
                <p>cliquer droit sur la base de données</p>
                <p>sélectionner schéma</p>
                <p>sélectionner New Class</p>
                <img src="./images/matisse_html_65148720.png" />
                <p>Il ne vous reste plus qu’a taper votre code SQL afin de continuer à créer votre classe puis cliquer sur le bouton « Play » (petit triangle vert sur l’image ci-dessous)</p>
                <img src="./images/matisse_html_74e46af2.png" />
                <p>Exemple :</p>
                <img src="./images/matisse_html_m73a06fe7.png" />
                <p>Une fois quelques classes créées, on peut les visualiser en développant le dossier ‘’classes’’</p>
                <img src="./images/matisse_html_m654f46a8.png" />
                <h5>2.1.1.5.Quelques boutons utiles :</h5>
                <img src="./images/matisse_html_m31a5a8fa.png" />
                <p>En partant de gauche à droite matisse_html_m68ba9241.png cache ou fait apparaitre le cas l’arbre (représentation de l’arbre ci-dessous)</p>
                <img src="./images/matisse_html_m58ecadbf.png" />
                <img name="Image21" src="./images/matisse_html_1a35cba5.png" />
                Rafraichit les informations concernant la base de données
                <br />
                <img name="Image22" src="./images/matisse_html_m72647f7a.png" />
                Donne l’état dans lequel se trouve la base de données (active ou non)
                <br />
                <img name="Image23" src="./images/matisse_html_m8994c4f.png" />
                Lance la séquence de création d’une nouvelle base de données
                <br />
                <img name="Image24" src="./images/matisse_html_3a26dcf6.png" />
                Propriétés de la base de données
                <br />
                <img name="Image25" src="./images/matisse_html_f53fa54.png" />
                Base de données précédente
                <br />
                <img name="Image26" src="./images/matisse_html_m7f9eab27.png" />
                Active la base de données sélectionnée
                <br />
                <img name="Image27" src="./images/matisse_html_35090bf6.png" />
                Désactive la base de données sélectionnée
                <br />
                <img name="Image28" src="./images/matisse_html_220a8a43.png" />
                Base de données suivante
                <br />
                <img name="Image29" src="./images/matisse_html_m48802b97.png" />
                Import des données csv
                <br />
                <img name="Image30" src="./images/matisse_html_79b94183.png" />
                Import des données XML
                <br />
                <img name="Image31" src="./images/matisse_html_4884c38d.png" />
                Bascule sur le SQL Query Analyser (ci-dessous)
                <img src="./images/matisse_html_m3e064c55.png" />
                <br />
                <img src="./images/matisse_html_m3891048a.png" />
                <br />
                En partant de gauche à droite
                <img name="Image34" src="./images/matisse_html_m68ba9241.png" />
                cache ou fait apparaitre le cas l’arbre (représentation de l’arbre ci-dessous)
                <img src="./images/matisse_html_m58ecadbf.png" />
                <br />
                <img name="Image36" src="./images/matisse_html_m6063dbc7.png" />
                Permet de charger un nouvel « SQL Query Editor » (partie droite de la fenêtre ou l’on tape le code SQL)
                <br />
                <img name="Image37" src="./images/matisse_html_5129f10a.png" />
                Permet de charger un script SQL
                <br />
                <img name="Image38" src="./images/matisse_html_4e30630f.png" />
                Permet de sauvegarder le script SQL en cours de création (celui que vous êtes en train d’écrire)
                <br />
                <img name="Image39" src="./images/matisse_html_51b6740b.png" />
                Sauvegarde tous les scripts SQL en cours de création (ceux que vous êtes en train d’écrire)
                <br />
                <img name="Image40" src="./images/matisse_html_m4f11304e.png" />
                « Nettoie » la fenêtre SQL Query Editor (encadrée en noir)
                <br />
                <img name="Image41" src="./images/matisse_html_2a8b0fa0.png" alt="" align="bottom" border="0" />
                <br />
                <img name="Image42" src="./images/matisse_html_m1c196525.png" alt="" align="bottom" border="0" />
                Choisir le type d’affichage
                <br />
                <img name="Image43" src="./images/matisse_html_3af4bf0f.png" alt="" align="bottom" border="0" />
                « Nettoie » la fenêtre de messages (encadée en noir)
                <br />
                <img name="Image44" src="./images/matisse_html_m28d50162.png" alt="" align="bottom" border="0" />
                <br />
                <img name="Image45" src="./images/matisse_html_631f1231.png" alt="" align="bottom" border="0" />
                Affiche les erreurs présentes dans le code
                <br />
                <img name="Image46" src="./images/matisse_html_5751d704.png" alt="" align="bottom" border="0" />
                Requête précédente
                <br />
                <img name="Image47" src="./images/matisse_html_32079dcb.png" alt="" align="bottom" border="0" />
                Exécute la requête en cours
                <br />
                <img name="Image48" src="./images/matisse_html_m7a1d9dce.png" alt="" align="bottom" border="0" />
                Requête suivante
                <br />
                <img name="Image49" src="./images/matisse_html_m268f4c37.png" alt="" align="bottom" border="0" />
                Stop la requête en cours d’exécution
                <br />
                <p>Créer une méthode</p>
                <img src="./images/matisse_html_72fab6a5.png" />
                <p>Taper votre code SQL et exécuter la même manipulation que dans l’exemple précèdent afin de « lancer » votre méthode.</p>
                <img src="./images/matisse_html_754aa164.png" />
            </div>
        </div>
    </body>
</html>

